# 使用官方Node.js运行时作为基础镜像
FROM node:22-alpine AS base

# 安装pnpm（使用淘宝源，生产环境更稳定）
RUN npm install -g pnpm --registry=https://registry.npmmirror.com/

# 设置工作目录
WORKDIR /app

# 先复制包管理文件，利用Docker缓存层
COPY package.json pnpm-lock.yaml* ./

# 安装依赖（生产依赖）
RUN pnpm install

# 复制项目文件
COPY . .

# 构建应用
RUN pnpm build

# 生产环境镜像
FROM node:22-alpine AS production

# 设置工作目录
WORKDIR /app

# 从base阶段复制构建产物
COPY --from=base --chown=nuxtuser:nodejs /app/.output ./.output
COPY --from=base --chown=nuxtuser:nodejs /app/package.json ./


# 创建uploads目录并设置权限
RUN mkdir -p uploads && chown nuxtuser:nodejs uploads

# 暴露端口
EXPOSE 3000

# 启动命令
CMD ["node", ".output/server/index.mjs"]